<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /**
     * @param {number[]} digits
     * @return {number[]}
     */
    var plusOne = function(digits) {
      let digitsArr = [...digits];
      for (let i = digitsArr.length - 1; i >= 0; i--) {
        let num = digitsArr[i] + 1; // 从末尾开始加1
        // 如果相加后小于10，就可以返回了；否则继续向前加，直到首位
        if (num < 10) {
          digitsArr[i] = num;
          return digitsArr;
        } else {
          digitsArr[i] = num % 10;
        }
      }
      // 运行到这，首位肯定大于9了，手动进位
      digitsArr[0] %= 10;
      digitsArr.unshift(1);
      return digitsArr;
    };
    console.log(
      plusOne([9])
    );
  </script>
</html>
